{% extends "blog/base.html" %}
{% load blog_tags %}

{% block title %}{{ post.title }}{% endblock %}

{% block content %}
    <h1>{{ post.title }}</h1>
    <p class="date">
        Published {{ post.publish }} by {{ post.author }}
    </p>
    <!-- {{ post.body|linebreaks }} -->
    <!-- Создание шаблонного фильтра для поддержки синтаксиса Markdown -->
    {{ post.body|markdown }}
    <!-- Фильтр linebreaks шаблонной переменной post.body был заменен
    фильтром markdown. Данный фильтр не только преобразовывает разрывы
    строк в теги <p>, но и конвертирует форматирование Markdown в HTML. 
    Отредактируйте шаблон blog/post/list.html,-->
    <p>
        <a href="{% url "blog:post_list" %}">Вернуться к списку постов</a>
    </p>
    <!-- Отправка электронных писем с помощью Django -->
    <p>
        <a href="{% url "blog:post_share" post.id %}">
            Поделиться этим постом
        </a>
    </p>

    <!-- Извлечение постов по сходству -->
    <h2>Рекомендуемые посты</h2>
    {% for post in similar_posts %}
            <p>
                <a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
                <!-- get_absolute_url - извлекает url данного поста -->
            </p>
        {% empty %}
        Схожих постов не обнаружено.
    {% endfor %}
    <!-- Добавление комментариев в шаблон детальной информации о посте -->
    {% with comments.count as total_comments %}
        <h2>
            {{ total_comments }} comment{{ total_comments|pluralize }}
        </h2>
    {% endwith %}
    {% for comment in comments %}
        <div class="comment">
            <p class="info">
                Comment {{ forloop.counter }} by {{ comment.name }}
                {{ comment.created }}
            </p>
            {{ comment.body|linebreaks }}
        </div>
    {% empty %}
        <p>There are no comments.</p>
    {% endfor %}
    {% include "blog/post/includes/comment_form.html" %}
{% endblock %}

<!-- В указанном шаблоне мы используем Django ORM-преобразователь, при-
меняя набор запросов comments.count(). Обратите внимание, что на языке
шаблонов Django для вызова методов круглые скобки не используются. Тег
% with % позволяет присваивать значение новой переменной, которая будет
доступна в шаблоне до тех пор, пока не появится тег % endwith %.
Мы используем шаблонный фильтр pluralize, чтобы отображать суффикс
множественного числа для слова comment, в зависимости от значения total_
comments. Шаблонные фильтры на входе принимают значение переменной,
к которой они применяются, и на выходе возвращают вычисленное значе-
ние. Подробнее о шаблонных фильтрах мы узнаем в главе 3 «Расширение
приложения для ведения блога».
Шаблонный фильтр pluralize возвращает строковый литерал с буквой «s»,
если значение отличается от 1. Приведенный выше текст будет прорисовы-
ваться как 0 comments, 1 comment или N comments, в зависимости от числа
активных комментариев к посту.
Теперь давайте добавим список активных комментариев в шаблон деталь-
ной информации о посте.
Отредактируйте шаблон blog/post/detail.html, внеся в него следующие
ниже изменения: -->

<!-- Мы добавили шаблонный тег % for %, чтобы прокручивать комментарии
к посту в цикле. Если список комментариев пуст, то выводится сообщение,
информирующее пользователей о том, что комментариев к этому посту нет.
Комментарии прокручиваются в цикле посредством переменной forloop.
counter, которая обновляет счетчик цикла на каждой итерации. По каждо-
му посту мы показываем имя пользователя, который его опубликовал, дату
и текст комментария.
Наконец, давайте добавим форму комментария в шаблон.
Отредактируйте шаблон blog/post/detail.html, вставив шаблон коммен-
тарной формы, -->